﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1TableAdapters;
using Dao;

namespace _InformaticaIndustrial_DerivdosVinicos.Interfaz
{
    public partial class Informes : Form
    {
        private IList<Object> _listParametros;
        public Informes()
        {
            InitializeComponent();
            panel1.Visible = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ReportDocument rptDoc = new ReportDocument();
            ParameterField param = new ParameterField();
            ParameterDiscreteValue discreteValue = new ParameterDiscreteValue();
            ParameterFields paramFiels = new ParameterFields();
                    
            switch (cbReport.SelectedItem.ToString())
            {
                case "Listado de CF":
                    rptDoc.Load(@"C:\Users\Yamila\Documents\Facultad\Industrial\_InformaticaIndustrial_DerivdosVinicos\_InformaticaIndustrial_DerivdosVinicos\Report\ListadoCF.rpt");
                    
                    //Ds.DataSet1.CostoFijoDataTable _taCa = (Ds.DataSet1.CostoFijoDataTable)_listParametros[0];
                    //Ds.DataSet1 _dsTabla = new Ds.DataSet1();
                    //_dsTabla.Tables[0].Merge(_taCa);

                    _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1 _dsDataSet1 = new _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1();
                    Ds.DataSet1TableAdapters.CostoFijoTableAdapter _datosCF = new CostoFijoTableAdapter();
                    _datosCF.Fill(_dsDataSet1.CostoFijo);

                    rptDoc.SetDataSource(_dsDataSet1);
                    break;
                case "Listado de CV x producto":
                        rptDoc.Load(@"C:\Users\Yamila\Documents\Facultad\Industrial\_InformaticaIndustrial_DerivdosVinicos\_InformaticaIndustrial_DerivdosVinicos\Report\ListadoCV.rpt");
                        Producto p = (Producto)cbProducto.SelectedItem;
                        
                        param.ParameterFieldName = "nombreProd";
                        discreteValue.Value = p.NombreProducto;
                        param.CurrentValues.Add(discreteValue);
                        paramFiels.Add(param);
                        cReportViewer1.ParameterFieldInfo = paramFiels;

                        _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1 _dsDataSet2 = new _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1();
                        Ds.DataSet1TableAdapters.CostosVariablesTableAdapter _datosCV = new CostosVariablesTableAdapter();
                        _datosCV.Fill(_dsDataSet2.CostosVariables, Convert.ToInt16(cbProducto.SelectedValue));

                    rptDoc.SetDataSource(_dsDataSet2);
                    break;
                case "Listado con los Producto Term y sus equivalencias con el estándar":
                    break;
                case "Listado del PE del producto standard x periodo":
                    break;
                case "Listado de productos a Reponer":
                    
                    if (rbMP.Checked)
                    {
                        rptDoc.Load(@"C:\Users\Yamila\Documents\Facultad\Industrial\_InformaticaIndustrial_DerivdosVinicos\_InformaticaIndustrial_DerivdosVinicos\Report\ListadoMPReponer.rpt");
                        //param.ParameterFieldName = "nombreProd";
                        //discreteValue.Value = "Materias Primas Faltantes";
                        //param.CurrentValues.Add(discreteValue);
                        //paramFiels.Add(param);
                        //cReportViewer1.ParameterFieldInfo = paramFiels;

                        _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1 _dsDataSet5 = new _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1();
                        Ds.DataSet1TableAdapters.MPReponerTableAdapter _mpRep = new MPReponerTableAdapter();
                        _mpRep.Fill(_dsDataSet5.MPReponer);

                        rptDoc.SetDataSource(_dsDataSet5);
                    }
                    else
                    {
                        rptDoc.Load(@"C:\Users\Yamila\Documents\Facultad\Industrial\_InformaticaIndustrial_DerivdosVinicos\_InformaticaIndustrial_DerivdosVinicos\Report\ListadoCompReponer.rpt");

                        //param.ParameterFieldName = "nombreProd";
                        //discreteValue.Value = "Componentes Faltantes";
                        //param.CurrentValues.Add(discreteValue);
                        //paramFiels.Add(param);
                        //cReportViewer1.ParameterFieldInfo = paramFiels;

                        _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1 _dsDataSet6 = new _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1();
                        Ds.DataSet1TableAdapters.ComponenteReponerTableAdapter _compRep = new ComponenteReponerTableAdapter();
                        _compRep.Fill(_dsDataSet6.ComponenteReponer);

                        rptDoc.SetDataSource(_dsDataSet6);
                        
                    }
                    break;
                case "Listado de productos Faltantes":
                   
                    if (rbMP.Checked)
                    {
                        rptDoc.Load(@"C:\Users\Yamila\Documents\Facultad\Industrial\_InformaticaIndustrial_DerivdosVinicos\_InformaticaIndustrial_DerivdosVinicos\Report\ListadoMPFaltantes.rpt");

                        //param.ParameterFieldName = "nombreProd";
                        //discreteValue.Value = "Materias Primas Faltantes";
                        //param.CurrentValues.Add(discreteValue);
                        //paramFiels.Add(param);
                        //cReportViewer1.ParameterFieldInfo = paramFiels;

                        _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1 _dsDataSet3 = new _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1();
                        Ds.DataSet1TableAdapters.MPFaltantesTableAdapter _mpFaltante = new MPFaltantesTableAdapter();
                        _mpFaltante.Fill(_dsDataSet3.MPFaltantes);

                        rptDoc.SetDataSource(_dsDataSet3);
                    }
                    else
                    {
                        rptDoc.Load(@"C:\Users\Yamila\Documents\Facultad\Industrial\_InformaticaIndustrial_DerivdosVinicos\_InformaticaIndustrial_DerivdosVinicos\Report\ListadoCompFaltantes.rpt");

                        //param.ParameterFieldName = "nombreProd";
                        //discreteValue.Value = "Componentes Faltantes";
                        //param.CurrentValues.Add(discreteValue);
                        //paramFiels.Add(param);
                        //cReportViewer1.ParameterFieldInfo = paramFiels;

                        _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1 _dsDataSet4 = new _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1();
                        Ds.DataSet1TableAdapters.CompFaltantesTableAdapter _compFaltante = new CompFaltantesTableAdapter();
                        _compFaltante.Fill(_dsDataSet4.CompFaltantes);

                        rptDoc.SetDataSource(_dsDataSet4);
                        
                    }
                    break;
                case "Listado Orden producción Pendientes":

                    rptDoc.Load(@"C:\Users\Yamila\Documents\Facultad\Industrial\_InformaticaIndustrial_DerivdosVinicos\_InformaticaIndustrial_DerivdosVinicos\Report\ListadoOrdenesPendientes.rpt");

                        //param.ParameterFieldName = "nombreProd";
                        //discreteValue.Value = "Materias Primas Faltantes";
                        //param.CurrentValues.Add(discreteValue);
                        //paramFiels.Add(param);
                        //cReportViewer1.ParameterFieldInfo = paramFiels;

                        _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1 _dsDataSet8 = new _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1();
                        Ds.DataSet1TableAdapters.OrdenProduccionPendientesTableAdapter _opPendientes = new OrdenProduccionPendientesTableAdapter();
                        _opPendientes.Fill(_dsDataSet8.OrdenProduccionPendientes);

                        rptDoc.SetDataSource(_dsDataSet8);
                    break;
                case "Listado Orden producción En curso":
                    rptDoc.Load(@"C:\Users\Yamila\Documents\Facultad\Industrial\_InformaticaIndustrial_DerivdosVinicos\_InformaticaIndustrial_DerivdosVinicos\Report\ListadoOrdenesEnCurso.rpt");

                    //param.ParameterFieldName = "nombreProd";
                    //discreteValue.Value = "Materias Primas Faltantes";
                    //param.CurrentValues.Add(discreteValue);
                    //paramFiels.Add(param);
                    //cReportViewer1.ParameterFieldInfo = paramFiels;

                    _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1 _dsDataSet9 = new _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1();
                    Ds.DataSet1TableAdapters.OrdenProduccionEnCursoTableAdapter _opEnCurso = new OrdenProduccionEnCursoTableAdapter();
                    _opEnCurso.Fill(_dsDataSet9.OrdenProduccionEnCurso);

                    rptDoc.SetDataSource(_dsDataSet9);
                    break;
                case "Listado Demanda por periodo":
                    rptDoc.Load(@"C:\Users\Yamila\Documents\Facultad\Industrial\_InformaticaIndustrial_DerivdosVinicos\_InformaticaIndustrial_DerivdosVinicos\Report\DemandaPorPeriodo.rpt");

                    //param.ParameterFieldName = "nombreProd";
                    //discreteValue.Value = "Materias Primas Faltantes";
                    //param.CurrentValues.Add(discreteValue);
                    //paramFiels.Add(param);
                    //cReportViewer1.ParameterFieldInfo = paramFiels;

                    _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1 _dsDataSet10 = new _InformaticaIndustrial_DerivdosVinicos.Ds.DataSet1();
                    Ds.DataSet1TableAdapters.DemandaPorPeriodoTableAdapter _dp = new DemandaPorPeriodoTableAdapter();
                    _dp.Fill(_dsDataSet10.DemandaPorPeriodo, Convert.ToInt32(cbPeriodo.SelectedItem));

                    rptDoc.SetDataSource(_dsDataSet10);
                    break;
            }

            cReportViewer1.ReportSource = rptDoc;
            cReportViewer1.Refresh();
        }

        private void cbReport_SelectedValueChanged(object sender, EventArgs e)
        {
            if (cbReport.SelectedItem.ToString() == "Listado de CV x producto")
            {
                cbProducto.DataSource = new IPProducto().getAll<Producto>();
                panel1.Visible = true;
                panelTipoProd.Visible = false;
                panelPeriodo.Visible = false;
            }
            else if (cbReport.SelectedItem.ToString() == "Listado de productos Faltantes")
            {
                panelTipoProd.Visible = true;
                panel1.Visible = false;
                panelPeriodo.Visible = false;
            }
            else if (cbReport.SelectedItem.ToString() == "Listado de productos a Reponer")
            {
                panelTipoProd.Visible = true;
                panel1.Visible = false;
                panelPeriodo.Visible = false;
            }
            else if (cbReport.SelectedItem.ToString() == "Listado Orden producción En curso")
            {
                panelTipoProd.Visible = false;
                panel1.Visible = false;
                panelPeriodo.Visible = false;
            }
            else if (cbReport.SelectedItem.ToString() == "Listado Orden producción Pendientes")
            {
                panelTipoProd.Visible = false;
                panel1.Visible = false;
                panelPeriodo.Visible = false;
            }
            else if (cbReport.SelectedItem.ToString() == "Listado Demanda por periodo")
            {
                panelTipoProd.Visible = false;
                panel1.Visible = false;
                panelPeriodo.Visible = true;

            }
        }

        private void rbMP_CheckedChanged(object sender, EventArgs e)
        {
            if (rbMP.Checked)
            {
                rbComp.Checked = false;
                panel1.Visible = false;
            }
            else
            {
                rbMP.Checked = false;
                panel1.Visible = false;
            }
        }

        private void rbComp_CheckedChanged(object sender, EventArgs e)
        {
            if (rbComp.Checked)
            {
                rbMP.Checked = false;
                panel1.Visible = false;
            }
            else
            {
                rbComp.Checked = false;
                panel1.Visible = false;
            }
        }

    }
}
